package com.pe.cineplanet.proyectocine.repository.hibernate;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;

import com.pe.cineplanet.proyectocine.domain.Menu;
import com.pe.cineplanet.proyectocine.repository.MenuRepository;
 
@Repository
public class MenuRepositoryHibernate extends HibernateDaoSupport 
implements MenuRepository{
	
	//constructor
	@Autowired
	public MenuRepositoryHibernate(SessionFactory sessionFactory) {
		setSessionFactory(sessionFactory);
	}

	public List<Menu> obtenerMenus() {
		return getHibernateTemplate().find("from Menu");   
	}

	public Menu obtenerMenu(int id_Funcionalidad) {
		return (Menu) getSession().createQuery("from Menu u where u.id_Funcionalidad=?").setInteger(0, id_Funcionalidad).uniqueResult();
	}

	public void grabarMenu(Menu obj) {
		getHibernateTemplate().saveOrUpdate(obj);
		
	}

	public void removerMenu(int id_Funcionalidad) {
		Menu obj = obtenerMenu(id_Funcionalidad);
		getHibernateTemplate().delete(obj);
		
	}

	public Menu buscarPorNombre(String Nombre) {
		String sql = "from Menu where desc_Funcionalidad=?";
		Menu menu1 ;
		try{
		menu1 = (Menu) getHibernateTemplate().find(sql, new Object[]{Nombre});
		}catch (EmptyResultDataAccessException ex) {
			return null;
		}
		return menu1;
	}

}
